A/B-тестирование для интернет-магазина

Цель исследования - проанализировать список гипотез, подготовленных вместе с отделом маркетинга, для увеличения выручки.

Задачи иследования:

Описание данных:

Данные для первой части

Файл /datasets/hypothesis.csv.

Данные для второй части

Файл /datasets/orders.csv.

Файл /datasets/visitors.csv.

Ход исследования:

  1. описать общую информацию о данных
  2. провести предобработку данных
  3. ЧАСТЬ 1 провести приоритезацию гипотез:
  1. ЧАСТЬ 2 провести анализ A/B-теста:
  1. составить общий вывод.

Загрузка данных и подготовка их к анализу

1.1 Импорт необходимых библиотек

1.2 Загрузка и чтение данных из csv-файла в датафрейм c помощью библиотеки pandas

3 дата-фрейма хранят в себе данные о гипотезах, совершенных заказов и пользователях, разделенных на группы для тестирования. Во всех датасетах не наблюдается пропусков и явных дубликатов. Необходимо внести изменения в названия столбцов таблиц для комфортной работы и изменить типы данных, что важно для последующего анализа.

1.3 Предобработка данных

Переименование столбцов в соотвествии со стилем snake_case.

Изменение типа данных необходимых столбцов.

Изучение временного интервала(даты начала и окончания теста)

Тестирование проходило с 1 августа 2019 г. по 31 августа 2019г.

По динамике посетителей по дням и по группам видно, что количество пользователей в обеих группах было достаточно равноценным, периоды спада и подъема в обоих группах приходятся в большинстве случаев на одну и ту же датую

Разделение пользователей по группам и проверка пользователей на попадание в обе группы.

Так как пересекающиеся пользователи в группах A и B могут оказать влияние на проведение дальнейшего тестирования, следует отчистить датасет от таких пользователей. Однако, после удаление пересекающихся данных стоит относится осторожно к результатм теста. Такой случай мог являться результатом некорректного проведение A/A-теста или его отсутствия. В будущем перед проведение A/B-теста стоит более внимательно отнестись к A/A-тесту, т.к. качество данных для дальшейшего тестирования будет лучше.

Данные предобработаны и готовы к проведению A/B-тестированию и проверке гипотез.

Часть 1. Приоритизация гипотез.

В компании принята шкала линейной оценки гипотезы от 0 до 10, где 0 — «охват гипотезы ни на кого не повлияет», а 10 — «гипотеза охватит хотя бы половину пользователей».

2.1 Применение фреймворка ICE для приоритизации гипотез

По фреймворку ICE приоритетнее оказались гипотезы:

2.2 Применение фреймворка RICE для приоритизации гипотез

По фреймворку RICE приоритетнее оказались гипотезы:

Наиболее перспективные гипотезы совпадают после применение фреймворков ICE и RICE. Однако на первом месте уже гипотеза под номером 7. Так получилось потому, что ее параметр Reach (охват пользователей) равен максимальному количеству баллов - 10, в то время как у других гипотез он меньше, ведь кроме силы гитопез стоит учитывать то, как много пользователей она затронет.

Следовательно, акцентируя внимание на результатах применение фреймворка RICE и качеству охвата пользователей, стоит в перспективе обратить внимание на гипотезы 7, 2 и 0.

Часть 2. Анализ A/B-теста

3.1 График кумулятивной выручки по группам

Прибыль растет в течение всего рассматриваемого периода. В группе В прибыль растет быстрее группы А на протяжении всего периода.

В некоторых точках видны всплески, особенно ярко выделяется яркий скачок показателей группы В около 19 августа 2019г. Видимо выросло количество заказов или произошел аномальный всплеск, благодаря рекламной кампании или акции.

Скорее всего, принимать какие-либо решения по данной метрике дано, требуюется дополнительный анализ выбросов, которые так сильно исказили результаты.

3.2 График кумулятивного среднего чека по группам

Показатели кумулятивного среднего чека по группам росли неравномерно.

В группе А заметен резкий спад в начале периода исследования, следом подъем к середине, потом незначительное падение и дальнейшее стабильное движение почти без изменений.

В группе В наблюдаются более высокие показатели по отношению к группе А, а также резкие взлеты. Один из которых приходится на описываемый выше период (около 19 августа 2019г.). Быросы, повлиявшие данные в целом, при заключительном анализе необходимо будет удалить

К концу периода в группе В идет тенденция к спаду, в то время как у группы А наоборот - к небольшому росту.

3.3 График относительного изменения кумулятивного среднего чека группы B к группе A

На графике видны резкие изменения среднего чека и явное отличие среднего чека группы В по отношению к группы А. Результаты теста значительно и резко менялись в несколько дат. Скорее всего, причиной резких скачков стали произведенные пользователями аномально затратные заказы.

3.4 График кумулятивного среднего количества заказов на посетителя по группам

На графике видно, что в первые дни показатели у группы А были выше, чем у группы В, но спустя 6 дней со времени запуска теста, это поменялось. У группы А наблюдается постепенный спад, с равномерными колебаниями. А у группы В начался период подъема с достаточно сильными колебаниями, однако ближе к концу исследуемого периода показатели выравниваются.

3.5 График относительного изменения кумулятивного среднего количества заказов на посетителя группы B к группе A

По прошествию 5 дней теста группа В лидирует в метрике и становится все лучше. К концу периода показатели снижаются , но устаканиваются в показателе около 15% относительно группы А.

3.6 Точечный график количества заказов по пользователям

Большинство покупателей заказывали только один раз.

По точечному графику видно, что в большинстве случаев пользователи совершали не больше 1-2 заказов.

3.7 95-й и 99-й перцентили количества заказов на пользователя

Границей при дальнейшем тестировании стоит брать - 99-й перцентиль.

3.8 Точечный график стоимостей заказов

По точечному графику видно, что в большинстве случаев пользователи совершали стоимостью около 20000.

3.9 95-й и 99-й перцентили стоимости заказов

Границей при дальнейшем тестировании стоит брать - показатель стоимости в 30000, что немногим больше 95-го перцентиля.

3.10 Статистическая значимость различий в среднем количестве заказов на посетителя между группами по «сырым» данным

Создаем переменные orders_by_users_a и orders_by_users_b со столбцами ['visitor_id', 'orders'], где для пользователей, совершивших хотя бы 1 заказ, будет указано число заказов. Объявляем переменные sample_a и sample_b, в которых пользователям с заказами будет соответствовать число заказов пользователя. А пользователям без заказов — нули. Считаем статистическую значимость различия среднего количества заказов по результатам теста. Применяем тест Манна-Уитни, с заданным уровнем значимости 0.05.

Гипотезы:

Н0: различий в среднем количестве заказов между группами нет.

Н1: различия в среднем между группами есть.

P-value равно 1.1%, это меньше заданного уровня значимости. Поэтому мы можем отвергнуть нулевую гипотезу. Следственно, разница между группами по "сырым данным" присутствует.

Относительный прирост группы В по среднему количеству заказов на посетителя составил 16%.

3.11 Статистическая значимость различий в среднем чеке заказа между группами по «сырым» данным

Гипотезы:

H0:Средние чеки групп A и B равны

H1:Средние чеки групп A и B различны

P-value больше 0.05 - статистически значимых отличий в среднем чеке между группами нет.

Кроме того, относительное различие среднего чека между сегментами составило 29%.

3.12 Статистическая значимость различий в среднем количестве заказов на посетителя между группами по «очищенным» данным

При работе над "очищением" данных будем считать пользователей аномальными, если они совершали более 2 заказов на сумму более 30000.

Создадим переменные sample_a_filtered и sample_b_filtered, в которых сохраним очищенные данные о заказах — не включая аномальных пользователей. Выведем p-value для сравнения среднего между очищенными группами. Округлим p-value до трех знаков после запятой. Выведем относительный прирост среднего очищенной группы B, округлив до трёх знаков после запятой.

Как и в случае с сырыми данными, статистическая значимость достигнута. Группа В лучше группы А.

3.13 Статистическая значимость различий в среднем чеке заказа между группами по «очищенным» данным

Значение p-value уменьшилось с 0.829 до 0.741. Относительные различия уменьшились с 29% до 2,7%. Это может означать, что после удаления выбросов в данных стало меньше шума.

Как и в случае с "сырыми данными" статистически значимых отличий в среднем чеке между группами нет

Графики кумулятивных расчетов показали, что:

В данных присутствовали аномалии: пользователи, совершившие более 2 заказов на сумму более 30000.

Расчеты статистической значимости в среднем чеке заказа между группами по сырым и очищенным данным показали, что:

Расчеты статистической значимости в среднем количестве заказов между группами по сырым и очищенным данным показали, что:

Итог

  1. Большим приоритетом обладает гипотеза "добавить форму подписки на все основные страницы, чтобы собрать базу клиентов для e-mail рассылки"
  2. По результатам теста по показателям выруски, конверсии и среднего чека лучшие результаты к концу исследуемого периода показала группа В
  3. Статистически значимые различия в среднем количестве заказов по группам присутствуют
  4. Статистически значимых различий в среднем чеке по группам нет
  5. После проведения A/B-теста можно утверждать, что между группами А и В действительно есть разница. Средний чеки остался прежним, но количество заказов возрасло, следовательно и увеличилась выручка

Исхолдя из этого, тест следует остановить и зафиксировать победу группы В.

Общие выводы

В ходе работы были выполнены следующие задачи: